# Python常见异常类型示例

"""
Python异常的概念：
- 异常是程序运行时发生的错误
- Python使用try...except语句处理异常
- 异常处理可以避免程序崩溃，增强程序健壮性
"""

print("="*50)
print("Python常见异常类型示例")
print("="*50)

# 1. ValueError - 当操作或函数接收到类型正确但值不合适的参数时
print("\n1. ValueError示例")
print("-"*40)
try:
    # 尝试将字符串'abc'转换为整数
    num = int('abc')
except ValueError as e:
    print(f"发生ValueError: {e}")
    print("无法将字符串'abc'转换为整数")

# 2. IndexError - 当尝试访问序列中不存在的索引时
print("\n2. IndexError示例")
print("-"*40)
try:
    # 尝试访问列表中不存在的索引
    numbers = [1, 2, 3]
    print(numbers[5])  # 列表只有3个元素，索引5不存在
except IndexError as e:
    print(f"发生IndexError: {e}")
    print("尝试访问的列表索引不存在")

# 3. KeyError - 当尝试访问字典中不存在的键时
print("\n3. KeyError示例")
print("-"*40)
try:
    # 尝试访问字典中不存在的键
    person = {"name": "张三", "age": 25}
    print(person["address"])  # 'address'键不存在
except KeyError as e:
    print(f"发生KeyError: {e}")
    print("尝试访问的字典键不存在")

# 4. ZeroDivisionError - 当除数为零时
print("\n4. ZeroDivisionError示例")
print("-"*40)
try:
    # 尝试除以零
    result = 10 / 0
except ZeroDivisionError as e:
    print(f"发生ZeroDivisionError: {e}")
    print("不能除以零")

# 5. FileNotFoundError - 当尝试访问不存在的文件时
print("\n5. FileNotFoundError示例")
print("-"*40)
try:
    # 尝试打开不存在的文件
    file = open('不存在的文件.txt', 'r')
except FileNotFoundError as e:
    print(f"发生FileNotFoundError: {e}")
    print("尝试打开的文件不存在")